#region License
/* Copyright (C) 2009 Tim Coulter
 * 
 * This file is part of ExtremeML.
 * 
 * ExtremeML is free software: you can redistribute
 * it and/or modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 * 
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
 * the GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
*/
#endregion

using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Linq;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using ExtremeML.Core;
using ExtremeML.Packaging;
using ExtremeML.Spreadsheet;

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FileRecoveryPropertiesWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper, DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FileRecoveryPropertiesWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FileRecoveryPropertiesWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties>() select new ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.FileRecoveryProperties>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper(ExtremeML.Spreadsheet.FileRecoveryPropertiesWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.WorkbookViewWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.WorkbookViewWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WorkbookViewWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.WorkbookViewWrapper, DocumentFormat.OpenXml.Spreadsheet.WorkbookView>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="WorkbookViewWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WorkbookViewWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.WorkbookView>() select new ExtremeML.Spreadsheet.WorkbookViewWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WorkbookView>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.WorkbookViewWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.WorkbookViewWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.WorkbookViewWrapper(ExtremeML.Spreadsheet.WorkbookViewWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.WebPublishObjectWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.WebPublishObjectWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishObjectWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.WebPublishObjectWrapper, DocumentFormat.OpenXml.Spreadsheet.WebPublishObject>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishObjectWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishObjectWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.WebPublishObject>() select new ExtremeML.Spreadsheet.WebPublishObjectWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WebPublishObject>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.WebPublishObjectWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.WebPublishObjectWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.WebPublishObjectWrapper(ExtremeML.Spreadsheet.WebPublishObjectWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.PivotCacheWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.PivotCacheWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotCacheWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.PivotCacheWrapper, DocumentFormat.OpenXml.Spreadsheet.PivotCache>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotCacheWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotCacheWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.PivotCache>() select new ExtremeML.Spreadsheet.PivotCacheWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PivotCache>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.PivotCacheWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.PivotCacheWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.PivotCacheWrapper(ExtremeML.Spreadsheet.PivotCacheWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ExternalReferenceWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ExternalReferenceWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExternalReferenceWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ExternalReferenceWrapper, DocumentFormat.OpenXml.Spreadsheet.ExternalReference>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ExternalReferenceWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExternalReferenceWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.ExternalReference>() select new ExtremeML.Spreadsheet.ExternalReferenceWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ExternalReference>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ExternalReferenceWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ExternalReferenceWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ExternalReferenceWrapper(ExtremeML.Spreadsheet.ExternalReferenceWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.DefinedNameWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.DefinedNameWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DefinedNameWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.DefinedNameWrapper, DocumentFormat.OpenXml.Spreadsheet.DefinedName>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="DefinedNameWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DefinedNameWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.DefinedName>() select new ExtremeML.Spreadsheet.DefinedNameWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DefinedName>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.DefinedNameWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.DefinedNameWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.DefinedNameWrapper(ExtremeML.Spreadsheet.DefinedNameWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CustomWorkbookViewWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CustomWorkbookViewWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomWorkbookViewWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CustomWorkbookViewWrapper, DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomWorkbookViewWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomWorkbookViewWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView>() select new ExtremeML.Spreadsheet.CustomWorkbookViewWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomWorkbookView>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CustomWorkbookViewWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CustomWorkbookViewWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CustomWorkbookViewWrapper(ExtremeML.Spreadsheet.CustomWorkbookViewWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.SmartTagTypeWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.SmartTagTypeWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SmartTagTypeWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.SmartTagTypeWrapper, DocumentFormat.OpenXml.Spreadsheet.SmartTagType>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SmartTagTypeWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SmartTagTypeWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.SmartTagType>() select new ExtremeML.Spreadsheet.SmartTagTypeWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SmartTagType>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.SmartTagTypeWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.SmartTagTypeWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.SmartTagTypeWrapper(ExtremeML.Spreadsheet.SmartTagTypeWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.SheetWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.SheetWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.SheetWrapper, DocumentFormat.OpenXml.Spreadsheet.Sheet>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Sheet>() select new ExtremeML.Spreadsheet.SheetWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Sheet>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.SheetWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.SheetWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.SheetWrapper(ExtremeML.Spreadsheet.SheetWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.SharedStringItemWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.SharedStringItemWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SharedStringItemWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.SharedStringItemWrapper, DocumentFormat.OpenXml.Spreadsheet.SharedStringItem>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SharedStringItemWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SharedStringItemWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.SharedStringItem>() select new ExtremeML.Spreadsheet.SharedStringItemWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SharedStringItem>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.SharedStringItemWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.SharedStringItemWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.SharedStringItemWrapper(ExtremeML.Spreadsheet.SharedStringItemWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.RunWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.RunWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RunWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.RunWrapper, DocumentFormat.OpenXml.Spreadsheet.Run>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="RunWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RunWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Run>() select new ExtremeML.Spreadsheet.RunWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Run>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.RunWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.RunWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.RunWrapper(ExtremeML.Spreadsheet.RunWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.PhoneticRunWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.PhoneticRunWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PhoneticRunWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.PhoneticRunWrapper, DocumentFormat.OpenXml.Spreadsheet.PhoneticRun>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="PhoneticRunWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PhoneticRunWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.PhoneticRun>() select new ExtremeML.Spreadsheet.PhoneticRunWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PhoneticRun>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.PhoneticRunWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.PhoneticRunWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.PhoneticRunWrapper(ExtremeML.Spreadsheet.PhoneticRunWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.DifferentialFormatWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.DifferentialFormatWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DifferentialFormatWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.DifferentialFormatWrapper, DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="DifferentialFormatWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DifferentialFormatWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat>() select new ExtremeML.Spreadsheet.DifferentialFormatWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DifferentialFormat>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.DifferentialFormatWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.DifferentialFormatWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.DifferentialFormatWrapper(ExtremeML.Spreadsheet.DifferentialFormatWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ColorWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ColorWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColorWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ColorWrapper, DocumentFormat.OpenXml.Spreadsheet.Color>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ColorWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColorWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Color>() select new ExtremeML.Spreadsheet.ColorWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Color>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ColorWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ColorWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ColorWrapper(ExtremeML.Spreadsheet.ColorWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.RgbColorWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.RgbColorWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RgbColorWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.RgbColorWrapper, DocumentFormat.OpenXml.Spreadsheet.RgbColor>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="RgbColorWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RgbColorWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.RgbColor>() select new ExtremeML.Spreadsheet.RgbColorWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.RgbColor>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.RgbColorWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.RgbColorWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.RgbColorWrapper(ExtremeML.Spreadsheet.RgbColorWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.FontWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.FontWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FontWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.FontWrapper, DocumentFormat.OpenXml.Spreadsheet.Font>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FontWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FontWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Font>() select new ExtremeML.Spreadsheet.FontWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Font>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.FontWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.FontWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.FontWrapper(ExtremeML.Spreadsheet.FontWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.BorderWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.BorderWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BorderWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.BorderWrapper, DocumentFormat.OpenXml.Spreadsheet.Border>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="BorderWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BorderWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Border>() select new ExtremeML.Spreadsheet.BorderWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Border>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.BorderWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.BorderWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.BorderWrapper(ExtremeML.Spreadsheet.BorderWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellFormatWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellFormatWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellFormatWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellFormatWrapper, DocumentFormat.OpenXml.Spreadsheet.CellFormat>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellFormatWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellFormatWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CellFormat>() select new ExtremeML.Spreadsheet.CellFormatWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellFormat>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellFormatWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellFormatWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellFormatWrapper(ExtremeML.Spreadsheet.CellFormatWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellStyleWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellStyleWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellStyleWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellStyleWrapper, DocumentFormat.OpenXml.Spreadsheet.CellStyle>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellStyleWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellStyleWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CellStyle>() select new ExtremeML.Spreadsheet.CellStyleWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellStyle>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellStyleWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellStyleWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellStyleWrapper(ExtremeML.Spreadsheet.CellStyleWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.TableStyleWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.TableStyleWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStyleWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.TableStyleWrapper, DocumentFormat.OpenXml.Spreadsheet.TableStyle>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStyleWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStyleWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.TableStyle>() select new ExtremeML.Spreadsheet.TableStyleWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.TableStyle>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.TableStyleWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.TableStyleWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.TableStyleWrapper(ExtremeML.Spreadsheet.TableStyleWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.TableStyleElementWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.TableStyleElementWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableStyleElementWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.TableStyleElementWrapper, DocumentFormat.OpenXml.Spreadsheet.TableStyleElement>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="TableStyleElementWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableStyleElementWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.TableStyleElement>() select new ExtremeML.Spreadsheet.TableStyleElementWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.TableStyleElement>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.TableStyleElementWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.TableStyleElementWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.TableStyleElementWrapper(ExtremeML.Spreadsheet.TableStyleElementWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.ShapeGuideWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.ShapeGuideWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ShapeGuideWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.ShapeGuideWrapper, DocumentFormat.OpenXml.Drawing.ShapeGuide>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ShapeGuideWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ShapeGuideWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.ShapeGuide>() select new ExtremeML.Drawing.ShapeGuideWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ShapeGuide>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.ShapeGuideWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.ShapeGuideWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.ShapeGuideWrapper(ExtremeML.Drawing.ShapeGuideWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.SupplementalFontWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.SupplementalFontWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SupplementalFontWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.SupplementalFontWrapper, DocumentFormat.OpenXml.Drawing.SupplementalFont>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SupplementalFontWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SupplementalFontWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.SupplementalFont>() select new ExtremeML.Drawing.SupplementalFontWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.SupplementalFont>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.SupplementalFontWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.SupplementalFontWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.SupplementalFontWrapper(ExtremeML.Drawing.SupplementalFontWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.OutlineWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.OutlineWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OutlineWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.OutlineWrapper, DocumentFormat.OpenXml.Drawing.Outline>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="OutlineWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OutlineWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.Outline>() select new ExtremeML.Drawing.OutlineWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.Outline>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.OutlineWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.OutlineWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.OutlineWrapper(ExtremeML.Drawing.OutlineWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.EffectStyleWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.EffectStyleWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class EffectStyleWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.EffectStyleWrapper, DocumentFormat.OpenXml.Drawing.EffectStyle>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="EffectStyleWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal EffectStyleWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.EffectStyle>() select new ExtremeML.Drawing.EffectStyleWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.EffectStyle>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.EffectStyleWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.EffectStyleWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.EffectStyleWrapper(ExtremeML.Drawing.EffectStyleWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.ExtraColorSchemeWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.ExtraColorSchemeWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ExtraColorSchemeWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.ExtraColorSchemeWrapper, DocumentFormat.OpenXml.Drawing.ExtraColorScheme>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ExtraColorSchemeWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ExtraColorSchemeWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.ExtraColorScheme>() select new ExtremeML.Drawing.ExtraColorSchemeWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.ExtraColorScheme>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.ExtraColorSchemeWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.ExtraColorSchemeWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.ExtraColorSchemeWrapper(ExtremeML.Drawing.ExtraColorSchemeWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Drawing
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Drawing.CustomColorWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Drawing.CustomColorWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomColorWrapperCollection : ElementWrapperCollection<ExtremeML.Drawing.CustomColorWrapper, DocumentFormat.OpenXml.Drawing.CustomColor>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomColorWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomColorWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Drawing.CustomColor>() select new ExtremeML.Drawing.CustomColorWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Drawing.CustomColor>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Drawing.CustomColorWrapper"/> instance.</returns>
		protected override ExtremeML.Drawing.CustomColorWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Drawing.CustomColorWrapper(ExtremeML.Drawing.CustomColorWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ConditionalFormattingWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ConditionalFormattingWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormattingWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ConditionalFormattingWrapper, DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormattingWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormattingWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting>() select new ExtremeML.Spreadsheet.ConditionalFormattingWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatting>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ConditionalFormattingWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ConditionalFormattingWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ConditionalFormattingWrapper(ExtremeML.Spreadsheet.ConditionalFormattingWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ColumnsWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ColumnsWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnsWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ColumnsWrapper, DocumentFormat.OpenXml.Spreadsheet.Columns>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnsWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnsWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Columns>() select new ExtremeML.Spreadsheet.ColumnsWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Columns>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ColumnsWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ColumnsWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ColumnsWrapper(ExtremeML.Spreadsheet.ColumnsWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.SheetViewWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.SheetViewWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SheetViewWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.SheetViewWrapper, DocumentFormat.OpenXml.Spreadsheet.SheetView>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SheetViewWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SheetViewWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.SheetView>() select new ExtremeML.Spreadsheet.SheetViewWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.SheetView>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.SheetViewWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.SheetViewWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.SheetViewWrapper(ExtremeML.Spreadsheet.SheetViewWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.SelectionWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.SelectionWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SelectionWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.SelectionWrapper, DocumentFormat.OpenXml.Spreadsheet.Selection>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SelectionWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SelectionWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Selection>() select new ExtremeML.Spreadsheet.SelectionWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Selection>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.SelectionWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.SelectionWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.SelectionWrapper(ExtremeML.Spreadsheet.SelectionWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.PivotSelectionWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.PivotSelectionWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotSelectionWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.PivotSelectionWrapper, DocumentFormat.OpenXml.Spreadsheet.PivotSelection>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotSelectionWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotSelectionWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.PivotSelection>() select new ExtremeML.Spreadsheet.PivotSelectionWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PivotSelection>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.PivotSelectionWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.PivotSelectionWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.PivotSelectionWrapper(ExtremeML.Spreadsheet.PivotSelectionWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.PivotAreaReferenceWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.PivotAreaReferenceWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class PivotAreaReferenceWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.PivotAreaReferenceWrapper, DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="PivotAreaReferenceWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal PivotAreaReferenceWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference>() select new ExtremeML.Spreadsheet.PivotAreaReferenceWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.PivotAreaReference>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.PivotAreaReferenceWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.PivotAreaReferenceWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.PivotAreaReferenceWrapper(ExtremeML.Spreadsheet.PivotAreaReferenceWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.FieldItemWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.FieldItemWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FieldItemWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.FieldItemWrapper, DocumentFormat.OpenXml.Spreadsheet.FieldItem>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FieldItemWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FieldItemWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.FieldItem>() select new ExtremeML.Spreadsheet.FieldItemWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.FieldItem>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.FieldItemWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.FieldItemWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.FieldItemWrapper(ExtremeML.Spreadsheet.FieldItemWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.RowWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.RowWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class RowWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.RowWrapper, DocumentFormat.OpenXml.Spreadsheet.Row>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="RowWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal RowWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Row>() select new ExtremeML.Spreadsheet.RowWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Row>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.RowWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.RowWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.RowWrapper(ExtremeML.Spreadsheet.RowWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellWrapper, DocumentFormat.OpenXml.Spreadsheet.Cell>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Cell>() select new ExtremeML.Spreadsheet.CellWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Cell>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellWrapper(ExtremeML.Spreadsheet.CellWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ProtectedRangeWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ProtectedRangeWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ProtectedRangeWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ProtectedRangeWrapper, DocumentFormat.OpenXml.Spreadsheet.ProtectedRange>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ProtectedRangeWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ProtectedRangeWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.ProtectedRange>() select new ExtremeML.Spreadsheet.ProtectedRangeWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ProtectedRange>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ProtectedRangeWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ProtectedRangeWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ProtectedRangeWrapper(ExtremeML.Spreadsheet.ProtectedRangeWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ScenarioWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ScenarioWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ScenarioWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ScenarioWrapper, DocumentFormat.OpenXml.Spreadsheet.Scenario>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ScenarioWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ScenarioWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Scenario>() select new ExtremeML.Spreadsheet.ScenarioWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Scenario>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ScenarioWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ScenarioWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ScenarioWrapper(ExtremeML.Spreadsheet.ScenarioWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.InputCellsWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.InputCellsWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class InputCellsWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.InputCellsWrapper, DocumentFormat.OpenXml.Spreadsheet.InputCells>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="InputCellsWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal InputCellsWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.InputCells>() select new ExtremeML.Spreadsheet.InputCellsWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.InputCells>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.InputCellsWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.InputCellsWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.InputCellsWrapper(ExtremeML.Spreadsheet.InputCellsWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.FilterColumnWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.FilterColumnWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FilterColumnWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.FilterColumnWrapper, DocumentFormat.OpenXml.Spreadsheet.FilterColumn>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FilterColumnWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FilterColumnWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.FilterColumn>() select new ExtremeML.Spreadsheet.FilterColumnWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.FilterColumn>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.FilterColumnWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.FilterColumnWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.FilterColumnWrapper(ExtremeML.Spreadsheet.FilterColumnWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Office2010.Excel.SortConditionWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Office2010.Excel.SortConditionWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class SortConditionWrapperCollection : ElementWrapperCollection<ExtremeML.Office2010.Excel.SortConditionWrapper, DocumentFormat.OpenXml.Office2010.Excel.SortCondition>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="SortConditionWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal SortConditionWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Office2010.Excel.SortCondition>() select new ExtremeML.Office2010.Excel.SortConditionWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Office2010.Excel.SortCondition>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Office2010.Excel.SortConditionWrapper"/> instance.</returns>
		protected override ExtremeML.Office2010.Excel.SortConditionWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Office2010.Excel.SortConditionWrapper(ExtremeML.Office2010.Excel.SortConditionWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Office2010.Excel
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Office2010.Excel.FilterWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Office2010.Excel.FilterWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FilterWrapperCollection : ElementWrapperCollection<ExtremeML.Office2010.Excel.FilterWrapper, DocumentFormat.OpenXml.Office2010.Excel.Filter>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FilterWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FilterWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Office2010.Excel.Filter>() select new ExtremeML.Office2010.Excel.FilterWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Office2010.Excel.Filter>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Office2010.Excel.FilterWrapper"/> instance.</returns>
		protected override ExtremeML.Office2010.Excel.FilterWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Office2010.Excel.FilterWrapper(ExtremeML.Office2010.Excel.FilterWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.DateGroupItemWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.DateGroupItemWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DateGroupItemWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.DateGroupItemWrapper, DocumentFormat.OpenXml.Spreadsheet.DateGroupItem>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="DateGroupItemWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DateGroupItemWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.DateGroupItem>() select new ExtremeML.Spreadsheet.DateGroupItemWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DateGroupItem>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.DateGroupItemWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.DateGroupItemWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.DateGroupItemWrapper(ExtremeML.Spreadsheet.DateGroupItemWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CustomFilterWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CustomFilterWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomFilterWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CustomFilterWrapper, DocumentFormat.OpenXml.Spreadsheet.CustomFilter>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomFilterWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomFilterWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CustomFilter>() select new ExtremeML.Spreadsheet.CustomFilterWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomFilter>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CustomFilterWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CustomFilterWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CustomFilterWrapper(ExtremeML.Spreadsheet.CustomFilterWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CustomSheetViewWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CustomSheetViewWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomSheetViewWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CustomSheetViewWrapper, DocumentFormat.OpenXml.Spreadsheet.CustomSheetView>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomSheetViewWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomSheetViewWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CustomSheetView>() select new ExtremeML.Spreadsheet.CustomSheetViewWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomSheetView>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CustomSheetViewWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CustomSheetViewWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CustomSheetViewWrapper(ExtremeML.Spreadsheet.CustomSheetViewWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.BreakWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.BreakWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class BreakWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.BreakWrapper, DocumentFormat.OpenXml.Spreadsheet.Break>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="BreakWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal BreakWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Break>() select new ExtremeML.Spreadsheet.BreakWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Break>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.BreakWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.BreakWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.BreakWrapper(ExtremeML.Spreadsheet.BreakWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.MergeCellWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.MergeCellWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class MergeCellWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.MergeCellWrapper, DocumentFormat.OpenXml.Spreadsheet.MergeCell>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="MergeCellWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal MergeCellWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.MergeCell>() select new ExtremeML.Spreadsheet.MergeCellWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.MergeCell>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.MergeCellWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.MergeCellWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.MergeCellWrapper(ExtremeML.Spreadsheet.MergeCellWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.DataValidationWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.DataValidationWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DataValidationWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.DataValidationWrapper, DocumentFormat.OpenXml.Spreadsheet.DataValidation>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="DataValidationWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DataValidationWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.DataValidation>() select new ExtremeML.Spreadsheet.DataValidationWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DataValidation>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.DataValidationWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.DataValidationWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.DataValidationWrapper(ExtremeML.Spreadsheet.DataValidationWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.HyperlinkWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.HyperlinkWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class HyperlinkWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.HyperlinkWrapper, DocumentFormat.OpenXml.Spreadsheet.Hyperlink>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="HyperlinkWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal HyperlinkWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Hyperlink>() select new ExtremeML.Spreadsheet.HyperlinkWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Hyperlink>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.HyperlinkWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.HyperlinkWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.HyperlinkWrapper(ExtremeML.Spreadsheet.HyperlinkWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CustomPropertyWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CustomPropertyWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CustomPropertyWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CustomPropertyWrapper, DocumentFormat.OpenXml.Spreadsheet.CustomProperty>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CustomPropertyWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CustomPropertyWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CustomProperty>() select new ExtremeML.Spreadsheet.CustomPropertyWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CustomProperty>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CustomPropertyWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CustomPropertyWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CustomPropertyWrapper(ExtremeML.Spreadsheet.CustomPropertyWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellWatchWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellWatchWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellWatchWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellWatchWrapper, DocumentFormat.OpenXml.Spreadsheet.CellWatch>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellWatchWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellWatchWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CellWatch>() select new ExtremeML.Spreadsheet.CellWatchWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellWatch>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellWatchWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellWatchWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellWatchWrapper(ExtremeML.Spreadsheet.CellWatchWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.IgnoredErrorWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.IgnoredErrorWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class IgnoredErrorWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.IgnoredErrorWrapper, DocumentFormat.OpenXml.Spreadsheet.IgnoredError>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="IgnoredErrorWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal IgnoredErrorWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.IgnoredError>() select new ExtremeML.Spreadsheet.IgnoredErrorWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.IgnoredError>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.IgnoredErrorWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.IgnoredErrorWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.IgnoredErrorWrapper(ExtremeML.Spreadsheet.IgnoredErrorWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellSmartTagsWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellSmartTagsWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellSmartTagsWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellSmartTagsWrapper, DocumentFormat.OpenXml.Spreadsheet.CellSmartTags>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellSmartTagsWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellSmartTagsWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CellSmartTags>() select new ExtremeML.Spreadsheet.CellSmartTagsWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellSmartTags>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellSmartTagsWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellSmartTagsWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellSmartTagsWrapper(ExtremeML.Spreadsheet.CellSmartTagsWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CellSmartTagPropertiesWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper, DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CellSmartTagPropertiesWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CellSmartTagPropertiesWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties>() select new ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.CellSmartTagProperties>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper(ExtremeML.Spreadsheet.CellSmartTagPropertiesWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.OleObjectWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.OleObjectWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class OleObjectWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.OleObjectWrapper, DocumentFormat.OpenXml.Spreadsheet.OleObject>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="OleObjectWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal OleObjectWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.OleObject>() select new ExtremeML.Spreadsheet.OleObjectWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.OleObject>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.OleObjectWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.OleObjectWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.OleObjectWrapper(ExtremeML.Spreadsheet.OleObjectWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ControlWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ControlWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ControlWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ControlWrapper, DocumentFormat.OpenXml.Spreadsheet.Control>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ControlWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ControlWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Control>() select new ExtremeML.Spreadsheet.ControlWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Control>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ControlWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ControlWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ControlWrapper(ExtremeML.Spreadsheet.ControlWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.WebPublishItemWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.WebPublishItemWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class WebPublishItemWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.WebPublishItemWrapper, DocumentFormat.OpenXml.Spreadsheet.WebPublishItem>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="WebPublishItemWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal WebPublishItemWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.WebPublishItem>() select new ExtremeML.Spreadsheet.WebPublishItemWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.WebPublishItem>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.WebPublishItemWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.WebPublishItemWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.WebPublishItemWrapper(ExtremeML.Spreadsheet.WebPublishItemWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.TablePartWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.TablePartWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TablePartWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.TablePartWrapper, DocumentFormat.OpenXml.Spreadsheet.TablePart>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="TablePartWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TablePartWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.TablePart>() select new ExtremeML.Spreadsheet.TablePartWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.TablePart>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.TablePartWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.TablePartWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.TablePartWrapper(ExtremeML.Spreadsheet.TablePartWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormattingRuleWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper, DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormattingRuleWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormattingRuleWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule>() select new ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormattingRule>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper(ExtremeML.Spreadsheet.ConditionalFormattingRuleWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.FormulaWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.FormulaWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class FormulaWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.FormulaWrapper, DocumentFormat.OpenXml.Spreadsheet.Formula>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="FormulaWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal FormulaWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Formula>() select new ExtremeML.Spreadsheet.FormulaWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Formula>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.FormulaWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.FormulaWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.FormulaWrapper(ExtremeML.Spreadsheet.FormulaWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ConditionalFormatValueObjectWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper, DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ConditionalFormatValueObjectWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ConditionalFormatValueObjectWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject>() select new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.ConditionalFormatValueObject>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper(ExtremeML.Spreadsheet.ConditionalFormatValueObjectWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.ColumnWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.ColumnWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class ColumnWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.ColumnWrapper, DocumentFormat.OpenXml.Spreadsheet.Column>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="ColumnWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal ColumnWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Column>() select new ExtremeML.Spreadsheet.ColumnWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Column>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.ColumnWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.ColumnWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.ColumnWrapper(ExtremeML.Spreadsheet.ColumnWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.AuthorWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.AuthorWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class AuthorWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.AuthorWrapper, DocumentFormat.OpenXml.Spreadsheet.Author>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="AuthorWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal AuthorWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Author>() select new ExtremeML.Spreadsheet.AuthorWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Author>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.AuthorWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.AuthorWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.AuthorWrapper(ExtremeML.Spreadsheet.AuthorWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.CommentWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.CommentWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class CommentWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.CommentWrapper, DocumentFormat.OpenXml.Spreadsheet.Comment>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="CommentWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal CommentWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.Comment>() select new ExtremeML.Spreadsheet.CommentWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.Comment>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.CommentWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.CommentWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.CommentWrapper(ExtremeML.Spreadsheet.CommentWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.TableColumnWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.TableColumnWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class TableColumnWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.TableColumnWrapper, DocumentFormat.OpenXml.Spreadsheet.TableColumn>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="TableColumnWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal TableColumnWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.TableColumn>() select new ExtremeML.Spreadsheet.TableColumnWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.TableColumn>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.TableColumnWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.TableColumnWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.TableColumnWrapper(ExtremeML.Spreadsheet.TableColumnWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.DeletedFieldWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.DeletedFieldWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class DeletedFieldWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.DeletedFieldWrapper, DocumentFormat.OpenXml.Spreadsheet.DeletedField>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="DeletedFieldWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal DeletedFieldWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.DeletedField>() select new ExtremeML.Spreadsheet.DeletedFieldWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.DeletedField>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.DeletedFieldWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.DeletedFieldWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.DeletedFieldWrapper(ExtremeML.Spreadsheet.DeletedFieldWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

namespace ExtremeML.Spreadsheet
{
	/// <summary>
	/// Maintains a collection of <see cref="ExtremeML.Spreadsheet.QueryTableFieldWrapper"/>.
	/// </summary>
	/// <seealso cref="ExtremeML.Spreadsheet.QueryTableFieldWrapper"/>
	[GeneratedCode("T4", "1.0")]
	public sealed partial class QueryTableFieldWrapperCollection : ElementWrapperCollection<ExtremeML.Spreadsheet.QueryTableFieldWrapper, DocumentFormat.OpenXml.Spreadsheet.QueryTableField>
	{

		/// <summary>
		/// Initializes a new instance of the <see cref="QueryTableFieldWrapperCollection"/> class.
		/// </summary>
		/// <param name="wrapped">An <see cref="OpenXmlElement"/> from which to populate this instance.</param>
		/// <param name="parent">An <see cref="IContentWrapper"/> that represents the parent wrapper instance.</param>
		/// <param name="package">An <see cref="IContentWrapper"/> that represents the package wrapper instance.</param>
		internal QueryTableFieldWrapperCollection(
			OpenXmlElement wrapped,
			IContentWrapper parent,
			IContentWrapper package)
			: base(wrapped, parent, package)
		{
		}
		

		/// <summary>
		/// Extracts collection members from the wrapped content object.
		/// </summary>
		protected override void OnDecomposing()
		{
			base.OnDecomposing();
			Items.AddRange(from item in Wrapped.Elements<DocumentFormat.OpenXml.Spreadsheet.QueryTableField>() select new ExtremeML.Spreadsheet.QueryTableFieldWrapper(item, this, Package));
		}

		/// <summary>
		/// Re-populates the passed content object from collection members.
		/// </summary>
		/// <param name="parent">An <see cref="OpenXmlElement"/> that represents the parent content object.</param>
		internal void Recompose(
			OpenXmlElement parent)
		{
			OnCustomRecomposing();
			if (Recomposing != null) Recomposing();

			parent.RemoveAllChildren<DocumentFormat.OpenXml.Spreadsheet.QueryTableField>();
			parent.Append(from item in Items select item.Recompose() as OpenXmlElement);

			OnCustomRecomposed();
			if (Recomposed != null) Recomposed();
		}

		/// <summary>
		/// Occurs when a this instance is requested to persist its content.
		/// </summary>
		private event VoidEventHandler Recomposing;

		/// <summary>
		/// Occurs after a this instance has persisted its content.
		/// </summary>
		private event VoidEventHandler Recomposed;

		/// <summary>
		/// Creates a new member wrapper instance populated with default content.
		/// </summary>
		/// <returns>A new <see cref="ExtremeML.Spreadsheet.QueryTableFieldWrapper"/> instance.</returns>
		protected override ExtremeML.Spreadsheet.QueryTableFieldWrapper CreateDefaultMemberWrapper()
		{
			return new ExtremeML.Spreadsheet.QueryTableFieldWrapper(ExtremeML.Spreadsheet.QueryTableFieldWrapper.CreateDefaultElement(), this, Package);
		}
	}
}

